<?php
/**
 * 用户,用户组相关model
 * @author zhaorongwei
 */
class UserModel extends Model
{
	public $errors;
	public function __construct()
	{
		parent::__construct();
	}	

	/**
	 * 获得用户组
	 */
	public function getUserGroups()
	{
		return $this->db->getResults("SELECT fid,fsubject FROM user_group");
	}

	/**
	 * 获取用户信息
	 * @param int $uid
	 * @return array
	 */
	public function getUserInfo($uid)
	{
		$uid=intval($uid);
		if($uid)
		{
			$row=$this->db->getRow("SELECT * FROM user WHERE fid=$uid");
			if($row && $row['fgroupid'])
			{
				$row['ffunctionids']=$this->db->getVar("SELECT ffunctionids FROM user_group WHERE fid=".intval($row['fgroupid']));
			}
			return $row;
		}
	}

	/**
	 * 修改用户信息
	 * @param int $uid 用户id
	 * @param array $data 用户信息
	 * @return int
	 */
	public function userEdit($uid, $data)
	{
		return $this->db->updateData('user', $data, array('fid'=>$uid));
	}

	/**
	 * 修改用户信息
	 * @return int
	 */	
	public function updateUser($data,$where)
	{
		return $this->db->updateData('user',$data,$where);
	}

	/**
	 * 删除用户
	 * @param int $uid
	 * @return bool 
	 */
	public function userDel($uid)
	{
		$uid=intval($uid);
		if($uid>0)
		{
			return $this->db->delData('user','fid='.$uid);
		}
		return false;
	}	

	/**
	 * 验证账号是否存在
	 * @param string $uname 用户账号
	 * @return int
	 */
	public function userIsExist($uname)
	{
		if(!$uname)
		{
			return;
		}
		return $this->db->getVar("SELECT fid from user WHERE fusername='".$this->db->escape($uname)."'");
	}
	
	/*
	 * 新增用户
	 */	
	public function userAdd($data)
	{
		return $this->db->insertData('user',$data);
	}
	
	/**
	 * 用户登录
	 * @param string $uname  用户账号
	 * @param string $password 登录密码
	 * @return array
	 */
	public function checkLogin($uname,$password)
	{
		return $this->db->getRow("SELECT * FROM user WHERE fusername='".$this->db->escape($uname)."' AND fpassword='".md5($this->db->escape($password))."'");
	}

	/**
	 * 获取好友列表
	 * @return array
	 */	
	public function getUserList()
	{
		$sql = 'SELECT u.*,g.fsubject FROM `user` u LEFT JOIN user_group g ON u.fgroupid=g.fid';
		return $this->db->getResults($sql);
	}

	
	//用户组的权限设置
	public function userGroupAuth($gid,$fids)
	{
		$gid=intval($gid);
		if($gid<1)
			return;
		$this->db->query("UPDATE user_group SET ffunctionids='$fids' WHERE fid=$gid");
	}

	public function getUserGroupByName($subject)
	{
		if($subject)
		{
			return $this->db->getRow("SELECT * FROM user_group WHERE fsubject='".$this->db->escape($subject)."'");
		}
	}

	public function getUserGroupById($id)
	{
		$id=intval($id);
		if($id>0)
		{
			return $this->db->getRow("SELECT * FROM user_group WHERE fid=".$id);
		}
	}

	public function getUserGroupTitle($id)
	{
		$id=intval($id);
		if($id)
		{
			return $this->db->getVar("SELECT fsubject FROM user_group WHERE fid=".$id);
		}
	}
	public function userGroupAdd($subject)
	{
		return $this->db->query("INSERT INTO user_group SET fsubject='".$this->db->escape($subject)."'");
	}
	
	/**
	 * 修改用户权限组
	 * @param int $id 用户组id
	 * @param string|array $data
	 * @return int
	 */
	public function userGroupUpdate($id,$data)
	{
		return $this->db->updateData('user_group',$data,'fid='.$id);
	}
	
	/**
	 * 删除用户组
	 * @param int $id
	 * @return int
	 */
	public function userGroupDel($id)
	{
		$id=intval($id);
		if($id>0)
		{
			return $this->db->delData('user_group','fid='.$id);
		}
	}

	/**
	 * 获取用户组列表
	 * @param int $offset
	 * @param int $limit
	 * @return array
	 */
	public function getUserGroupList($offset=0,$limit=20)
	{
		return $this->db->getResults("SELECT * FROM user_group".($limit?" LIMIT $offset,$limit":''));
	}

	/**
	 * 获取用户组总数
	 * @return int
	 */
	public function userGroupTotal()
	{
		return $this->db->getVar("SELECT COUNT(*) n FROM user_group");
	}
}
